﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SIMCRepositorio;
using SIMCObjetoNegocio;

namespace SIMCReglasNegocio
{
    public class TipoRestriccionSeguridad : IReglaDeNegocio
    {
        IRepositorioSeguridad m_SeguridadRepositorio;
        Usuario m_Usuario;
        FuncionConSeguridad m_FuncionEncontrada;
        FuncionConSeguridad m_FuncionParametro;

        public TipoRestriccionSeguridad(IRepositorioSeguridad p_SeguridadRepositorio, Usuario p_Usuario,
            FuncionConSeguridad p_FuncionEncontrada, FuncionConSeguridad p_FuncionParametro)
        {
            m_SeguridadRepositorio = p_SeguridadRepositorio;
            m_Usuario = p_Usuario;
            m_FuncionEncontrada = p_FuncionEncontrada;
            m_FuncionParametro = p_FuncionParametro;
        }

        public string MensajeError
        {
            get { throw new NotImplementedException(); }
        }

        public bool Validar()
        {
            switch (m_FuncionEncontrada.TipoRestriccion)
            {
                case "0":
                    return true;//No tiene restricciones

                case "1"://Tiene restricciones                                                    
                    return m_SeguridadRepositorio.BuscarPermiso(m_FuncionEncontrada, m_Usuario) != null;

                case "2":
                    return m_FuncionEncontrada.Password == m_FuncionParametro.Password;

                default:
                    return false;
            }   
        }
    }
}
